home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 September / CHIP 1996 szeptember (CD07).zip / CHIP_CD07.ISO / drivers / asus / cmd646 / cmd646.arj / NT35 / OEMSETUP.INF < prev    next >
INI File  |  1995-05-25  |  19KB  |  639 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, POINTER, KEYBOARD, LAYOUT, SCSI, TAPE, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = SCSI
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26.  
  27. ;-----------------------------------------------------------------------
  28. ; OPTION LIST
  29. ; -----------
  30. ; This section lists the Option key names.  These keys are locale
  31. ; independent and used to represent the option in a locale independent
  32. ; manner.
  33. ;
  34. ;-----------------------------------------------------------------------
  35.  
  36. [Options]
  37.     "Csa64x35"    = Csa64x35
  38.  
  39. ;-----------------------------------------------------------------------
  40. ; OPTION TEXT SECTION
  41. ; -------------------
  42. ; These are text strings used to identify the option to the user.  There
  43. ; are separate sections for each language supported.  The format of the
  44. ; section name is "OptionsText" concatenated with the Language represented
  45. ; by the section.
  46. ;
  47. ;-----------------------------------------------------------------------
  48.  
  49. [OptionsTextENG]
  50.     "Csa64x35"    = "CMD 64xx 32-Bit IDE Adapter"
  51.  
  52.  
  53. ;-----------------------------------------------------------------------------------------
  54. ; SCSI MINIPORT DRIVERS:
  55. ;
  56. ; Order of the information:
  57. ;
  58. ; Class driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported
  59. ;
  60. ;-----------------------------------------------------------------------------------------
  61.  
  62. [MiniportDrivers]
  63.     Csa64x35  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  25, %SystemRoot%\System32\IoLogMsg.dll , 7
  64.  
  65. ;---------------------------------------------------------------------------
  66. ; 1. Identify
  67. ;
  68. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  69. ;                as we are choosing currently.
  70. ;
  71. ; INPUT:         None
  72. ;
  73. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  74. ;                $($R1): Option Type (COMPUTER ...)
  75. ;                $($R2): Diskette description
  76. ;---------------------------------------------------------------------------
  77.  
  78. [Identify]
  79.     ;
  80.     ;
  81.     read-syms Identification
  82.  
  83.     set Status     = STATUS_SUCCESSFUL
  84.     set Identifier = $(OptionType)
  85.     set Media      = #("Source Media Descriptions", 1, 1)
  86.  
  87.     Return $(Status) $(Identifier) $(Media)
  88.  
  89.  
  90.  
  91. ;------------------------------------------------------------------------
  92. ; 2. ReturnOptions:
  93. ;
  94. ; DESCRIPTION:   To return the option list supported by this INF and the
  95. ;                localised text list representing the options.
  96. ;
  97. ;
  98. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  99. ;
  100. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  101. ;                                STATUS_NOLANGUAGE
  102. ;                                STATUS_FAILED
  103. ;
  104. ;                $($R1): Option List
  105. ;                $($R2): Option Text List
  106. ;------------------------------------------------------------------------
  107.  
  108. [ReturnOptions]
  109.     ;
  110.     ;
  111.     set Status        = STATUS_FAILED
  112.     set OptionList     = {}
  113.     set OptionTextList = {}
  114.  
  115.     ;
  116.     ; Check if the language requested is supported
  117.     ;
  118.     set LanguageList = ^(LanguagesSupported, 1)
  119.     Ifcontains(i) $($0) in $(LanguageList)
  120.     goto returnoptions
  121.     else
  122.     set Status = STATUS_NOLANGUAGE
  123.     goto finish_ReturnOptions
  124.     endif
  125.  
  126.     ;
  127.     ; form a list of all the options and another of the text representing
  128.     ;
  129.  
  130. returnoptions = +
  131.     set OptionList     = ^(Options, 0)
  132.     set OptionTextList = ^(OptionsText$($0), 1)
  133.     set Status         = STATUS_SUCCESSFUL
  134.  
  135. finish_ReturnOptions = +
  136.     Return $(Status) $(OptionList) $(OptionTextList)
  137.  
  138.  
  139. ;
  140. ; 3. InstallOption:
  141. ;
  142. ; FUNCTION:  To copy files representing Options
  143. ;            To configure the installed option
  144. ;            To update the registry for the installed option
  145. ;
  146. ; INPUT:     $($0):  Language to use
  147. ;            $($1):  OptionID to install
  148. ;            $($2):  SourceDirectory
  149. ;            $($3):  AddCopy  (YES | NO)
  150. ;            $($4):  DoCopy   (YES | NO)
  151. ;            $($5):  DoConfig (YES | NO)
  152. ;
  153. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  154. ;                            STATUS_NOLANGUAGE |
  155. ;                            STATUS_USERCANCEL |
  156. ;                            STATUS_FAILED
  157. ;
  158.  
  159. [InstallOption]
  160.  
  161.     ;
  162.     ; Set default values for
  163.     ;
  164.     set Status = STATUS_FAILED
  165.     set DrivesToFree = {}
  166.  
  167.     ;
  168.     ; extract parameters
  169.     ;
  170.     set Option   = $($1)
  171.     set SrcDir   = $($2)
  172.     set AddCopy  = $($3)
  173.     set DoCopy   = $($4)
  174.     set DoConfig = $($5)
  175.  
  176.     ;
  177.     ; Check if the language requested is supported
  178.     ;
  179.     set LanguageList = ^(LanguagesSupported, 1)
  180.     Ifcontains(i) $($0) in $(LanguageList)
  181.     else
  182.     set Status = STATUS_NOLANGUAGE
  183.     goto finish_InstallOption
  184.     endif
  185.     read-syms Strings$($0)
  186.  
  187.     ;
  188.     ; check to see if Option is supported.
  189.     ;
  190.  
  191.     set OptionList = ^(Options, 0)
  192.     ifcontains $(Option) in $(OptionList)
  193.     else
  194.     Debug-Output "SCSI.INF: SCSI option is not supported."
  195.     goto finish_InstallOption
  196.     endif
  197.     set OptionList = ""
  198.  
  199.     ;
  200.     ; Option has been defined already
  201.     ;
  202.  
  203.     set MiniportDriver   =   #(Options,         $(Option),         1)
  204.     set Type             = $(#(MiniportDrivers, $(MiniportDriver), 1))
  205.     set Group            =   #(MiniportDrivers, $(MiniportDriver), 2)
  206.     set ErrorControl     = $(#(MiniportDrivers, $(MiniportDriver), 3))
  207.     set Tag              =   #(MiniportDrivers, $(MiniportDriver), 4)
  208.     set EventMessageFile =   #(MiniportDrivers, $(MiniportDriver), 5)
  209.     set TypesSupported   =   #(MiniportDrivers, $(MiniportDriver), 6)
  210.  
  211. ;    set Start            =   $(!SERVICE_SYSTEM_START)
  212. ;    shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
  213. ;    ifint $($ShellCode) == $(!SHELL_CODE_OK)
  214. ;        ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  215. ;            ifstr(i) $($R1) == $(!SERVICE_BOOT_START)
  216. ;                set Start = $(!SERVICE_BOOT_START)
  217. ;            endif
  218. ;        endif
  219. ;    endif
  220.  
  221.     set Start            =   $(!SERVICE_BOOT_START)
  222.  
  223. installtheoption = +
  224.  
  225.     ;
  226.     ; Code to add files to copy list
  227.     ;
  228.  
  229.     ifstr(i) $(AddCopy) == "YES"
  230.     set DoActualCopy = NO
  231.     set FileToCheck = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  232.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  233.     ifstr(i) $(STATUS) == NO
  234.         set DoActualCopy = YES
  235.     endif
  236.  
  237.     ifstr(i) $(DoActualCopy) == NO
  238.         shell "subroutn.inf" DriversExist $($0) $(String1)
  239.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  240.         Debug-Output "SCSI.INF: shelling DriversExist failed"
  241.         goto finish_InstallOption
  242.         endif
  243.  
  244.         ifstr(i) $($R0) == STATUS_CURRENT
  245.         else-ifstr(i) $($R0) == STATUS_NEW
  246.         set DoActualCopy = YES
  247.         else-ifstr(i) $($R0) == STATUS_USERCANCEL
  248.         Debug-Output "SCSI.INF: User cancelled SCSI installation"
  249.         goto finish_InstallOption
  250.         else
  251.         Debug-Output "SCSI.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  252.         goto finish_InstallOption
  253.         endif
  254.     endif
  255.  
  256.     ifstr(i) $(DoActualCopy) == YES
  257.  
  258.         shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  259.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  260.         Debug-Output "SCSI.INF: shelling DoAskSourceEx failed"
  261.         goto finish_InstallOption
  262.         endif
  263.  
  264.         ifstr(i) $($R0) == STATUS_SUCCESSFUL
  265.         set SrcDir = $($R1)
  266.         ifstr(i) $($R2) != ""
  267.             set DrivesToFree = >($(DrivesToFree), $($R2))
  268.         endif
  269.         else
  270.         Debug-Output "SCSI.INF: User cancelled asking source."
  271.         goto finish_InstallOption
  272.         endif
  273.  
  274.         install Install-AddCopyOption
  275.         ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  276.         Debug-Output "Adding SCSI files to copy list failed"
  277.         goto finish_InstallOption
  278.         endif
  279.     else
  280.         set DoCopy = NO
  281.     endif
  282.  
  283.     endif
  284.  
  285.     ifstr(i) $(DoCopy) == "YES"
  286.     read-syms ProgressCopy$($0)
  287.     install Install-DoCopyOption
  288.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  289.         Debug-Output "Copying files failed"
  290.         goto finish_InstallOption
  291.     else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  292.         set Status = STATUS_USERCANCEL
  293.         goto finish_InstallOption
  294.     endif
  295.     endif
  296.  
  297.     ifstr(i) $(DoConfig) == "YES"
  298.     ;
  299.     ; first run a privilege check on modifying the setup node
  300.     ;
  301.  
  302.     shell "registry.inf" CheckSetupModify
  303.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  304.         goto finish_InstallOption
  305.     endif
  306.  
  307.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  308.         goto finish_InstallOption
  309.     endif
  310.  
  311.  
  312. ;; get Atapi's tag so we can copy it
  313. ;;        shell "" GetServicesEntryTag "Atapi"
  314. ;;        ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  315. ;;        ; this could happen if there is no start value or there is no
  316. ;;        ; key, in which case the option is not installed
  317. ;;        set Status = STATUS_SUCCESSFUL
  318. ;;        goto finish_InstallOption
  319. ;;        endif
  320. ;;
  321. ;;       set AtapiTag = $($R1)
  322.  
  323.  
  324.     ;
  325.     ; then make a new SCSI entry, the entry is created automatically
  326.     ; enabled
  327.     ;
  328.  
  329.     set ServiceNode   = $(MiniportDriver)
  330.     set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  331.  
  332.     set ServicesValues   = { +
  333.         {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  334.         {Start,          0, $(!REG_VT_DWORD),     $(Start)                 }, +
  335.         {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  336.         {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  337.         {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  338.         {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  339.         }
  340. ;        set ParametersValues = ""
  341.     set ParametersValues = { +
  342.         {EnhancedIDE, 0, $(!REG_VT_DWORD), 3} +
  343.         {LocalBusSpeed, 0, $(!REG_VT_DWORD), 0} +
  344.         {BusMasterRegister, 0, $(!REG_VT_DWORD), 0} +
  345.         {PrimaryIDE, 0, $(!REG_VT_DWORD), 32} +
  346.         {SecondaryIDE, 0, $(!REG_VT_DWORD), 32} +
  347.         {UseLbaMode, 0, $(!REG_VT_DWORD), 0} +
  348.         {PrimaryMasterOverride, 0, $(!REG_VT_DWORD), 255} +
  349.         {PrimarySlaveOverride, 0, $(!REG_VT_DWORD), 255} +
  350.         {SecondaryMasterOverride, 0, $(!REG_VT_DWORD), 255} +
  351.         {SecondarySlaveOverride, 0, $(!REG_VT_DWORD), 255} +
  352.         {PrimaryMasterTransferMode, 0, $(!REG_VT_DWORD), 1} +
  353.         {PrimarySlaveTransferMode, 0, $(!REG_VT_DWORD), 1} +
  354.         {SecondaryMasterTransferMode, 0, $(!REG_VT_DWORD), 1} +
  355.         {SecondarySlaveTransferMode, 0, $(!REG_VT_DWORD), 1} +
  356.         }
  357.  
  358.  
  359.     set DeviceValues     = {}
  360.     set EventLogValues   = { +
  361.         {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  362.         {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  363.         }
  364.  
  365.     shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  366.                         $(ServicesValues)   +
  367.                         $(ParametersValues) +
  368.                         $(DeviceValues)     +
  369.                         $(EventLogValues)   +
  370.                         Parameters
  371.  
  372.  
  373.  
  374.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  375.         Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  376.         goto finish_InstallOption
  377.     endif
  378.  
  379.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  380.         Debug-Output "MakeServicesEntry failed for SCSI"
  381.         goto finish_InstallOption
  382.     endif
  383.  
  384.  
  385. ;;  Turn off the Atdisk Driver
  386.  
  387.     shell "registry.inf" RemoveServicesEntry "Atdisk"
  388.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  389.         Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
  390.         goto finish_DeInstallOption
  391.     endif
  392.  
  393.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  394.         Debug-Output "SCSI.INF: Failed to disable services entry"
  395.         goto finish_DeInstallOption
  396.     endif
  397.  
  398.  
  399. ;;  Turn off the Atapi Driver
  400.  
  401.     shell "registry.inf" RemoveServicesEntry "Atapi"
  402.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  403.         Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
  404.         goto finish_DeInstallOption
  405.     endif
  406.  
  407.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  408.         Debug-Output "SCSI.INF: Failed to disable services entry"
  409.         goto finish_DeInstallOption
  410.     endif
  411.  
  412.     endif
  413.  
  414.  
  415.     set Status = STATUS_SUCCESSFUL
  416. finish_InstallOption = +
  417.     ForListDo $(DrivesToFree)
  418.     LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  419.     EndForListDo
  420.  
  421.     Return $(Status)
  422.  
  423.  
  424. [Install-AddCopyOption]
  425.  
  426.     ;
  427.     ; Add the files to the copy list
  428.     ;
  429.     AddSectionKeyFileToCopyList   Files-ScsiMiniportDrivers         +
  430.                   $(MiniportDriver)                 +
  431.                   $(SrcDir)                      +
  432.                   $(!STF_WINDOWSSYSPATH)\drivers
  433.  
  434.     exit
  435.  
  436.  
  437. [Install-DoCopyOption]
  438.  
  439.     ;
  440.     ; Copy files in the copy list
  441.     ;
  442.     CopyFilesInCopyList
  443.     exit
  444.  
  445. ;-------------------------------------------------------------------------
  446. ; 4. DeInstallOption:
  447. ;
  448. ; FUNCTION:  To remove files representing Option
  449. ;            To remove the registry entry corresponding to the Option
  450. ;
  451. ; INPUT:     $($0):  Language to use
  452. ;            $($1):  OptionID to install
  453. ;
  454. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  455. ;                            STATUS_NOLANGUAGE |
  456. ;                            STATUS_USERCANCEL |
  457. ;                            STATUS_FAILED
  458. ;-------------------------------------------------------------------------
  459. [DeInstallOption]
  460.     ;
  461.     ; Set default values for
  462.     ;
  463.     set Status   = STATUS_FAILED
  464.     ;
  465.     ; extract parameters
  466.     ;
  467.     set Option   = $($1)
  468.  
  469.     ;
  470.     ; Check if the language requested is supported
  471.     ;
  472.     set LanguageList = ^(LanguagesSupported, 1)
  473.     Ifcontains(i) $($0) in $(LanguageList)
  474.     else
  475.     set Status = STATUS_NOLANGUAGE
  476.     goto finish_DeInstallOption
  477.     endif
  478.     read-syms Strings$($0)
  479.  
  480.     ;
  481.     ; check to see if Option is supported.
  482.     ;
  483.  
  484.     set OptionList = ^(Options, 0)
  485.     ifcontains $(Option) in $(OptionList)
  486.     else
  487.     goto finish_DeInstallOption
  488.     endif
  489.     set OptionList = ""
  490.  
  491.     ;
  492.     ; fetch details about option
  493.     ;
  494.  
  495.     set MiniportDriver = #(Options, $(Option), 1)
  496.     set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  497.     set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
  498.  
  499.     ;
  500.     ; check to see if file is installed
  501.     ; if not give success
  502.     ;
  503.  
  504.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
  505.     ifstr(i) $(STATUS) == "NO"
  506.     set Status = STATUS_SUCCESSFUL
  507.     goto finish_DeInstallOption
  508.     endif
  509.  
  510.     shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
  511.     ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  512.     ; this could happen if there is no start value or there is no
  513.     ; key, in which case the option is not installed
  514.     set Status = STATUS_SUCCESSFUL
  515.     goto finish_DeInstallOption
  516.     endif
  517.  
  518.     ifstr(i) $($R1) == $(!SERVICE_BOOT_START)
  519.     shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String3)
  520.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  521.         goto do_removal
  522.     endif
  523.     ifstr(i) $($R1) == "CANCEL"
  524.         goto finish_DeInstallOption
  525.     endif
  526.     endif
  527.  
  528. do_removal =+
  529.     ;
  530.     ; disable the registry entry
  531.     ;
  532.  
  533.     shell "registry.inf" RemoveServicesEntry $(MiniportDriver)
  534.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  535.     Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
  536.     goto finish_DeInstallOption
  537.     endif
  538.  
  539.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  540.     Debug-Output "SCSI.INF: Failed to disable services entry"
  541.     goto finish_DeInstallOption
  542.     endif
  543.  
  544.     ;
  545.     ; we won't remove the file because we can only do so during the next boot.
  546.     ; if the user chooses to reinstall the same driver during this boot
  547.     ; he will still end up deleting the driver on next boot. if the file
  548.     ; should be deleted a warning should be put up saying that the user should
  549.     ; not try to reinstall the driver during this boot
  550.     ;
  551.     ;    AddFileToDeleteList $(FilePath)
  552.  
  553.     set Status = STATUS_SUCCESSFUL
  554.  
  555. finish_DeInstallOption =+
  556.     return $(Status)
  557.  
  558.  
  559. ;-------------------------------------------------------------------------
  560. ; 5. GetInstalledOptions:
  561. ;
  562. ; FUNCTION:  To find out the list of options which are installed
  563. ;
  564. ; INPUT:     $($0): Language to Use
  565. ;
  566. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  567. ;                            STATUS_FAILED
  568. ;
  569. ;            $($R1): List of options installed
  570. ;            $($R2): Option installed Text List
  571. ;-------------------------------------------------------------------------
  572. [GetInstalledOptions]
  573.     set Status = STATUS_FAILED
  574.     set InstalledOptions = {}
  575.     set InstalledOptionsText = {}
  576.  
  577.     ;
  578.     ; Check if the language requested is supported
  579.     ;
  580.     set LanguageList = ^(LanguagesSupported, 1)
  581.     Ifcontains(i) $($0) in $(LanguageList)
  582.     else
  583.     set Status = STATUS_NOLANGUAGE
  584.     goto finish_GetInstalledOptions
  585.     endif
  586.  
  587.     set OptionList = ^(Options, 0)
  588.     ForListDo $(OptionList)
  589.     set MiniportDriver = #(Options, $($), 1)
  590.     set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
  591.     set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
  592.     LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
  593.     ifstr(i) $(STATUS) == "YES"
  594.         shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
  595.         ifint $($ShellCode) == $(!SHELL_CODE_OK)
  596.         ifstr(i) $($R0) == STATUS_SUCCESSFUL
  597.             ifstr(i) $($R1) != $(!SERVICE_DISABLED)
  598.  
  599.             set OptionText = #(OptionsText$($0), $($), 1)
  600.             set InstalledOptions     = >($(InstalledOptions), $($))
  601.             set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText))
  602.  
  603.             endif
  604.         endif
  605.         endif
  606.     endif
  607.     EndForListDo
  608.     set Status = STATUS_SUCCESSFUL
  609. finish_GetInstalledOptions =+
  610.     Return $(Status) $(InstalledOptions) $(InstalledOptionsText)
  611.  
  612.  
  613. ;**************************************************************************
  614. ; PROGRESS GUAGE VARIABLES
  615. ;**************************************************************************
  616.  
  617. [ProgressCopyENG]
  618.     ProCaption   = "Windows NT Setup"
  619.     ProCancel    = "Cancel"
  620.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  621.            "to cancel copying files?"
  622.     ProCancelCap = "Setup Message"
  623.     ProText1     = "Copying:"
  624.     ProText2     = "To:"
  625.  
  626. [StringsENG]
  627.     String1 = "CMD 64xx 32-Bit IDE Adapter"
  628.     String2 = "Please enter the full path to the CMD 64xx 32-Bit IDE "+
  629.           "Adapter files.  Then choose Continue."
  630.     String3 = "The CMD 64xx 32-Bit IDE Adapter has been marked as a boot device.  Removing "+
  631.           "it may cause the system not to boot."$(!LF)$(!LF)"Are you sure "+
  632.           "you want to remove the Adapter."
  633.  
  634. [Source Media Descriptions]
  635.     1  = "CMD 64xx 32-Bit IDE Distribution Disk"  , TAGFILE = disk1.nt
  636.  
  637. [Files-ScsiMiniportDrivers]
  638. Csa64x35 = 1,csa64x35.sys , SIZE=38112
  639.